/*************************************************************************
 * File Name:    1001_Exponentiation.c
 * Author:       zero91
 * Mail:         jianzhang9102@gmail.com
 * Created Time: 2013/12/24 9:11:57
 * 
 * Description:  http://poj.org/problem?id=1001
 ************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

int max (int a, int b) { return a > b ? a : b; }
int min (int a, int b) { return a > b ? b : a; }

#define DIGIT 7
#define MAX 150

int
get_num(const char* str, int* factor)
{
	int i, j, digit;

	for (i = strlen(str) - 1, j = 0; i >= 0; --i) {
		if (str[i] == '.') {
			digit = j;
        } else {
			factor[++j] = str[i] - '0';
        }
	}
	while (factor[j] == 0) {
		--j;
    }
	factor[0] = j;
	return digit;
}

int
main(int argc, char *argv[])
{
	char str[DIGIT];
	int factor[DIGIT], result[MAX], tmp_result[MAX];
	int bits, times, i, j, k;

	while (scanf("%s%d", str, &times) != EOF) {
		memset(factor, 0, sizeof (factor));
		memset(result, 0, sizeof (result));

		bits = get_num(str, factor) * times;

		memcpy(result, factor, sizeof(factor));
		for (i = 2; i <= times; ++i) {
			memset(tmp_result, 0, sizeof (tmp_result));
			for (j = 1; j <= result[0]; ++j) {
				for (k = 1; k <= factor[0]; ++k) {
					tmp_result[j + k - 1] += result[j] * factor[k];
                }
            }
			for (j = 1; j <= result[0] + factor[0]; ++j) {
				result[j] = tmp_result[j] % 10;
				tmp_result[j + 1] += tmp_result[j] / 10;
			}
			for (j = result[0] + factor[0]; j > 1; --j) {
				if (result[j]) break;
            }
			result[0] = j;
		}
		for (i = result[0]; i > bits; --i) {
			printf ("%d", result[i]);
        }

		for (j = 1; j <= bits; ++j) {
			if (result[j]) break;
        }
		if (j <= bits) printf (".");
		for (i = bits; i >= j; --i) {
			printf ("%d", result[i]);
        }
		printf ("\n");
	}
	return 0;
}
